<?php
class UsuariosController extends AppController {

	var $name = 'Usuarios';
	var $uses = array('Usuario', 'Grupo');
	var $helpers = array('Html', 'Form');

	function index() {
		$usuario=$this->Session->read('Usuario');
		$usuarioId=$usuario['Usuario']['id'];
		$this->set('usuarioId',$usuarioId);
		$this->layout='cliente';
		$this->Usuario->recursive = 0;
		$this->set('usuarios', $this->paginate());
	}
	function lista($grupo=null){
	//	print_r($usuario['Grupo']['nombre']);
		$this->Usuario->recursive = 0;
		if($grupo=='clientes'){
			$clientes=$this->Usuario->find('all',array('conditions'=>array('grupo_id'=>1)));
		}
		$this->set('usuarios', $this->paginate());
	}

	function view($id = null) {
		if (!$id) {
			$this->Session->setFlash(__('Invalid Usuario.', true));
			$this->redirect(array('action'=>'index'));
		}
		$this->set('usuario', $this->Usuario->read(null, $id));
	}

	function add() {
		if (!empty($this->data)) {
				$this->data['Usuario']['passwordlogin']=md5($this->data['Usuario']['passwordlogin']);
				$this->data['Usuario']['passwordtransaccion']=md5($this->data['Usuario']['passwordtransaccion']);
			$this->Usuario->create();
			if ($this->Usuario->save($this->data)) {
				$this->Session->setFlash(__('The Usuario has been saved', true));
				$this->redirect(array('action'=>'index'));
			} else {
				$this->Session->setFlash(__('The Usuario could not be saved. Please, try again.', true));
			}
		}
		$grupos = $this->Usuario->Grupo->find('list');
		$this->set(compact('grupos'));
	}

	function edit($id = null) {
		$this->layout='cliente';
		$usuario=$this->Session->read('Usuario');
		$usuarioId=$usuario['Usuario']['id'];
		if($usuario['Usuario']['id']== $id){
			if (!$id && empty($this->data)) {
				$this->Session->setFlash(__('Invalid Usuario', true));
				$this->redirect(array('action'=>'index'));
			}
			if (!empty($this->data)) {
				$this->data['Usuario']['passwordlogin']=md5($this->data['Usuario']['passwordlogin']);
				$this->data['Usuario']['passwordtransaccion']=md5($this->data['Usuario']['passwordtransaccion']);
				if ($this->Usuario->save($this->data)) {
					$this->Session->setFlash(__('The Usuario has been saved', true));
					$this->redirect(array('action'=>'index'));
				} else {
					$this->Session->setFlash(__('The Usuario could not be saved. Please, try again.', true));
				}
			}
			if (empty($this->data)) {
				$this->data = $this->Usuario->read(null, $id);
			}
			$grupos = $this->Usuario->Grupo->find('list');
			$this->set(compact('grupos'));
		}else{
			$this->flash('Usted no es este usuario','/usuarios/index');
		}

	}

	function delete($id = null) {
		if (!$id) {
			$this->Session->setFlash(__('Invalid id for Usuario', true));
			$this->redirect(array('action'=>'index'));
		}
		if ($this->Usuario->del($id)) {
			$this->Session->setFlash(__('Usuario deleted', true));
			$this->redirect(array('action'=>'index'));
		}
	}

    function beforeFilter()
    {
        $this->__validateLoginStatus();
    }

    function login()
    {
        if(empty($this->data) == false)
        {
            if(($usuario = $this->Usuario->validateLogin($this->data['Usuario'])) == true)
            {
//            	print_r($this->Session->read('Usuario'));
                $this->Session->write('Usuario', $usuario);
				$this->Session->setFlash('Accesaste satisfactoriamente'.$usuario['Grupo']['nombre']);
				switch($usuario['Grupo']['nombre']){
					case 'cliente':
						$this->redirect(array('controller'=>'usuarios', 'action'=>'index'));
						break;
					case 'cajero':
						$this->redirect(array('controller'=>'cajeros', 'action'=>'index'));
						break;
					case 'ejecutivo de despacho':
						$this->redirect(array('controller'=>'despachos', 'action'=>'index'));
						break;
					case 'gerente':
						$this->redirect(array('controller'=>'gerentes', 'action'=>'index'));
						break;
					case 'ejecutivo de cuentas':
						$this->redirect(array('controller'=>'ejcuentas', 'action'=>'index'));
						break;
				}

//                $this->redirect('index');
                exit();
            }
            else
            {
                $this->Session->setFlash('Lo sentimos, la informacion que proporcionaste es incorrecta.');
                $this->redirect('login');
                exit();
            }
        }
    }

    function logout()
    {
        $this->Session->destroy('usuario');
        $this->Session->setFlash('You\'ve successfully logged out.');
        $this->redirect('login');
    }

    function __validateLoginStatus()
    {
        if($this->action != 'login' && $this->action != 'logout')
        {
            if($this->Session->check('Usuario') == false)
            {
                $this->redirect('login');
                $this->Session->setFlash('La URL que has introducido requiere tu autentificacion.');
            }
        }
    }


}
?>